

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using DualControl.HazardSources.Dtos;
using DualControl.HazardSources;
using DualControl.RiskPoints.Dtos;
using DualControl.EmergencyMeasures.Dtos;

namespace DualControl.HazardSources
{
    /// <summary>
    /// HazardSource应用层服务的接口方法
    ///</summary>
    public interface IHazardSourceAppService : IApplicationService
    {


        
        /// <summary>
        /// 包含风险管控信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        //Task<PagedResultDto<RiskPointListDto>> GetPagedRiskPointsIncludeControlMeasure(GetRiskPointsInput input);

    
        Task<PagedResultDto<RiskPointListDto>> GetPagedRiskPoints(GetRiskPointsInput input);

        /// <summary>
        /// 包含负责人信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        //Task<PagedResultDto<HazardSourceListDto>> GetPagedHazardSourcesIncludeUser(GetHazardSourcesInput input);

        
        /// <summary>
        /// 拿到风险点列表信息，包含了风险源，页面视图展示用
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        //Task<PagedResultDto<RiskPointHazardSourceListDto>> GetPagedRiskPointHazardSource(GetRiskPointsInput input);


        /// <summary>
        /// 获取HazardSource的分页列表信息
        ///</summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<HazardSourceListDto>> GetPagedHazardSources(GetHazardSourcesInput input);

		/// <summary>
		/// 通过指定id获取HazardSourceListDto信息
		/// </summary>
		Task<HazardSourceListDto> GetHazardSourceByIdAsync(EntityDto<int> input);


        /// <summary>
        /// 导出HazardSource为excel表
        /// </summary>
        /// <returns></returns>
		//Task<FileDto> GetHazardSourcesToExcel();

        /// <summary>
        /// 返回实体的EditDto
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<GetHazardSourceForEditOutput> GetHazardSourceForEdit(NullableIdDto<int> input);

        //todo:缺少Dto的生成GetHazardSourceForEditOutput

        //批量添加作业步骤

        Task InsertJobSteps(int RiskPointId, string[] JobSteps);

        /// <summary>
        /// 添加或者修改HazardSource的公共方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task CreateOrUpdateHazardSource(CreateOrUpdateHazardSourceInput input);


        /// <summary>
        /// 删除HazardSource信息的方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task DeleteHazardSource(EntityDto<int> input);


        /// <summary>
        /// 批量删除HazardSource
        /// </summary>
        Task BatchDeleteHazardSourcesAsync(List<int> input);


		//// custom codes
		 
        //// custom codes end
    }
}
